import axios from "axios";
import { ElMessage } from 'element-plus'
//创建一个axios实例
const serve = axios.create({
    //超时时间
    timeout:20000,
    //请求基本地址 每次请求前会自动加上此前缀 例如 'http://loaclhost:8080/api' 此处是设置了代理
    baseURL:'http://localhost:8084/api/reception/',
    headers: {
        'x-Request-with': 'XMLHttpRequest' //x-requested-with 请求头 区分ajax请求还是普通请求
    },
    withCredentials: true /*是否必须携带XMLHttpRequest 的 withCredentials 属性默认值为false。在获取同域资源时设置 withCredentials 没有影响。true：在跨域请求时，会携带用户凭证*/
})

//请求拦截器 在每次发起axios请求之前对我们的请求做一些设置 最常见的设置请求头是否携带token 等
serve.interceptors.request.use(config => {
        let token =  window.localStorage.getItem('token')
        if(token){
            config.headers.common['authorization'] = 'Bearer ' + token;
        }
        return config
    },
    error => {
        return Promise.reject(error)
    })

//响应拦截器 指的是每次请求回来之后 对服务器响应的响应体做出处理
serve.interceptors.response.use(res => {
        console.log(res);
        if(res.data.status == 200){
            return res.data
        }else {
            ElMessage.error(res.data.msg)
        }
    }
    ,error => {
       return Promise.reject(error)
    })

export default serve
